home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / CPPAWARE.PAK / DBCOMBO.CPP < prev    next >
C/C++ Source or Header  |  1997-05-06  |  4KB  |  111 lines

  1. //--------------------------------------------------------
  2. // DBCOMBO.CPP
  3. // Copyrights (C) 1996 Borland International
  4. //--------------------------------------------------------
  5.  
  6. #include <vdbt/dbcontrl.h>
  7. #pragma hdrstop
  8. #include <vdbt/dbcombo.h>
  9.  
  10. //--------------------------------------------------------
  11. // TDBComboBox (VB3, subclassed from COMBOBOX)
  12. //--------------------------------------------------------
  13. TDBComboBox::TDBComboBox( TWindow *parent, int id, LPCSTR title
  14.                       , int x, int y, int w, int h, TModule *module )
  15.   : TDBControl( parent, id, "TDBComboBox", title, x, y, w, h, module )
  16.   , INIT_SOURCE( OnClick )
  17.   , INIT_SOURCE( OnDragDrop )
  18.   , INIT_SOURCE( OnDragOver )
  19.   , INIT_SOURCE( OnEndDrag )
  20.   , INIT_SOURCE( OnChange )
  21.   , INIT_SOURCE( OnDblClick )
  22.   , INIT_SOURCE( OnDrawItem )
  23.   , INIT_SOURCE( OnDropDown )
  24.   , INIT_SOURCE( OnEnter )
  25.   , INIT_SOURCE( OnExit )
  26.   , INIT_SOURCE( OnKeyDown )
  27.   , INIT_SOURCE( OnKeyPress )
  28.   , INIT_SOURCE( OnKeyUp )
  29.   , INIT_SOURCE( OnMeasureItem )
  30. {
  31. }
  32.  
  33. TDBComboBox::TDBComboBox( TWindow *parent, int resourceId, TModule *module )
  34.   : TDBControl( parent, resourceId, module )
  35.   , INIT_SOURCE( OnClick )
  36.   , INIT_SOURCE( OnDragDrop )
  37.   , INIT_SOURCE( OnDragOver )
  38.   , INIT_SOURCE( OnEndDrag )
  39.   , INIT_SOURCE( OnChange )
  40.   , INIT_SOURCE( OnDblClick )
  41.   , INIT_SOURCE( OnDrawItem )
  42.   , INIT_SOURCE( OnDropDown )
  43.   , INIT_SOURCE( OnEnter )
  44.   , INIT_SOURCE( OnExit )
  45.   , INIT_SOURCE( OnKeyDown )
  46.   , INIT_SOURCE( OnKeyPress )
  47.   , INIT_SOURCE( OnKeyUp )
  48.   , INIT_SOURCE( OnMeasureItem )
  49. {
  50. }
  51.  
  52.  
  53. //--------------------------------------------------------
  54. // OWL response table
  55. //--------------------------------------------------------
  56. DEFINE_DB_RESPONSE_TABLE1( TDBComboBox, TDBControl )
  57.   EV_VBXEVENT_CLICK,
  58.   EV_VBXEVENT_DRAGOVER,
  59.   EV_VBXEVENT_DRAGDROP,
  60.   EV_VBXEVENT_ENDDRAG,
  61.   EV_VBXEVENT_DBLCLICK(    Event_TDBComboBox_DblClick ),
  62.   EV_VBXEVENT_KEYDOWN(     Event_TDBComboBox_KeyDown ),
  63.   EV_VBXEVENT_KEYPRESS(    Event_TDBComboBox_KeyPress ),
  64.   EV_VBXEVENT_KEYUP(       Event_TDBComboBox_KeyUp ),
  65.   EV_VBXEVENT_ENTER(       Event_TDBComboBox_GotFocus ),
  66.   EV_VBXEVENT_EXIT(        Event_TDBComboBox_LostFocus ),
  67.   EV_VBXEVENT_CHANGE(      Event_TDBComboBox_Change ),
  68.   EV_VBXEVENT_MEASUREITEM( Event_TDBComboBox_MeasureItem ),
  69.   EV_VBXEVENT_DRAWITEM(    Event_TDBComboBox_DrawItem ),
  70.   EV_VBXEVENT_DROPDOWN(    Event_TDBComboBox_DropDown ),
  71. END_RESPONSE_TABLE;
  72.  
  73.  
  74. //--------------------------------------------------------
  75. // Event Handlers
  76. //--------------------------------------------------------
  77. DEFINE_DB_EVENT( TDBComboBox, OnClick,     TNotifyEvent,   Event_TDBComboBox_Click );
  78. DEFINE_DB_EVENT( TDBComboBox, OnDragDrop,  TDragEvent,     Event_TDBComboBox_DragDrop );
  79. DEFINE_DB_EVENT( TDBComboBox, OnDragOver,  TDragOverEvent, Event_TDBComboBox_DragOver );
  80. DEFINE_DB_EVENT( TDBComboBox, OnEndDrag,   TDragEvent,     Event_TDBComboBox_EndDrag );
  81. DEFINE_DB_EVENT( TDBComboBox, OnChange,      TNotifyEvent,      Event_TDBComboBox_Change );
  82. DEFINE_DB_EVENT( TDBComboBox, OnDblClick,    TNotifyEvent,      Event_TDBComboBox_DblClick );
  83. DEFINE_DB_EVENT( TDBComboBox, OnDrawItem,    TDrawItemEvent,    Event_TDBComboBox_DrawItem );
  84. DEFINE_DB_EVENT( TDBComboBox, OnDropDown,    TNotifyEvent,      Event_TDBComboBox_DropDown );
  85. DEFINE_DB_EVENT( TDBComboBox, OnEnter,       TNotifyEvent,      Event_TDBComboBox_GotFocus );
  86. DEFINE_DB_EVENT( TDBComboBox, OnExit,        TNotifyEvent,      Event_TDBComboBox_LostFocus );
  87. DEFINE_DB_EVENT( TDBComboBox, OnKeyDown,     TKeyEvent,         Event_TDBComboBox_KeyDown );
  88. DEFINE_DB_EVENT( TDBComboBox, OnKeyPress,    TKeyPressEvent,    Event_TDBComboBox_KeyPress );
  89. DEFINE_DB_EVENT( TDBComboBox, OnKeyUp,       TKeyEvent,         Event_TDBComboBox_KeyUp );
  90. DEFINE_DB_EVENT( TDBComboBox, OnMeasureItem, TMeasureItemEvent, Event_TDBComboBox_MeasureItem );
  91.  
  92.  
  93. //--------------------------------------------------------
  94. // Getter & Setters
  95. //--------------------------------------------------------
  96. TDC *TDBComboBox::prCanvas::Get()
  97. {
  98.   HDC Canvas = NULL;
  99.  
  100.   if( ! DBOUTER( Canvas )->GetVBXProperty( Prop_TDBComboBox_Canvas, &Canvas, -1 ) )
  101.     ThrowException( "Getting Canvas Failed!" );
  102.  
  103.   if( p )
  104.     delete p;
  105.  
  106.   if( (p = new TDC( Canvas )) == NULL )
  107.     ThrowException( "Memory Allocation Failed in TDBComboBox::Canvas::Get()!" );
  108.  
  109.   return p;
  110. }
  111.